package com.cyan.teamquestionnaire.service;

import com.cyan.teamquestionnaire.beans.PageInfo;
import com.cyan.teamquestionnaire.entity.Group;
import com.cyan.teamquestionnaire.entity.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface GroupService {

    // 新建群组，实现类记得将创建者和租户加入到group_user表中
    void createGroup(Group group);

    // 删除群组,同时在群组里面的用户信息也删除(group_user)
    boolean deleteGroup(String gId);

    // 修改群组
    boolean modifyGroup(Group group);

    // 将用户加入到该组
    boolean addUserToGroup(String name, String gId);

    // 将用户从某组删除
    boolean deleteUserFromGroup(String name, String gId);

    List<String> usersInGroup(String gId);

    //选择用户创建的List ——  不分页
    List<Group> getGroupList(Group group);

    //选择用户创建的List ——  分页
    PageInfo<Group> getGroupListY(PageInfo<Group> pageInfo);

    //选择qid群组里面的用户列表————分页
    PageInfo<User> usersInGroupFuzzyY(PageInfo<User> pageInfo);

    //返回这个租户管理下的用户还没加入群组的用户
    //要想群组加入用户，首先要选择出来这个租户的所有用户，然后选择出来所有这个群组里面的用户，两者做差集
    PageInfo<User> getRestUser(PageInfo<User> pageInfo);

    PageInfo<Object> splitPage(PageInfo<Object> pageInfo, List<Object> list);

    //返回该租户下的所有群组list，分页模糊
    PageInfo<Group> GroupInTenantFuzzy(PageInfo<Group> pageInfo);

    // 查询租户下所有群组数
    int countGroupInTenant(String name);

}
